#include<stdio.h>
#include<unistd.h>
#include<signal.h>

volatile int g_flag = 0;  //避免优化带来的问题
//int g_flag = 0;

void changeflag(int signo)
{
    (void)signo;
    printf("将g_flag, 从%d->%d\n", g_flag, 1);
    g_flag = 1;
}

int main()
{
    signal(2, changeflag);
    while(!g_flag);     //优化会导致，cpu寄存器屏蔽内存，导致内存不可见，所以volatile
    printf("process quit normal\n");
    return 0;
}